Solutions/Threat Intelligence (NEW)/Parsers/ThreatIntelIndicatorsv2.yaml (51 lines of code) (raw):
id: c14fb5ea-7499-44f9-a319-98c2c9f242d9
Function:
Title: Parser for ThreatIntelIndicators
Version: '1.0.0'
LastUpdated: '2025-03-20'
Category: Microsoft Sentinel Parser
FunctionName: ThreatIntelIndicatorsv2
FunctionAlias: ThreatIntelIndicatorsv2
FunctionQuery: |
ThreatIntelIndicators
| extend NetworkIP = iff(ObservableKey == 'ipv4-addr:value', ObservableValue, ''),
NetworkSourceIP = iff(ObservableKey == 'network-traffic:src_ref.value', ObservableValue, ''),
NetworkDestinationIP = iff(ObservableKey == 'network-traffic:dst_ref.value', ObservableValue, ''),
EmailSourceIpAddress = iff(ObservableKey == 'network-traffic:src_ref.value', ObservableValue, ''),
NetworkCidrBlock = iff(ObservableKey == 'network-traffic:src_ref.value', ObservableValue, ''),
DomainName = iff(ObservableKey == 'domain-name:value', ObservableValue, ''),
EmailAddress = iff(ObservableKey == 'email-addr:value', ObservableValue, ''),
EmailRecipient = iff(ObservableKey == 'email-addr:value', ObservableValue, ''),
EmailSenderAddress = iff(ObservableKey == 'email-addr:value', ObservableValue, ''),
EmailSourceDomain = iff(ObservableKey == 'domain-name:value', ObservableValue, ''),
EmailSubject = tostring(Data.description),
ExpirationDateTime = ValidUntil,
FileHashType = case(ObservableKey has 'MD5', 'MD5',
ObservableKey has 'SHA-1', 'SHA-1',
ObservableKey has 'SHA-256', 'SHA-256',
''),
FileHashValue = iff(ObservableKey has 'file:hashes', ObservableValue, ''),
Active = IsActive,
Url = iff(ObservableKey == 'url:value', ObservableValue, ''),
x509Certificate = iff(ObservableKey has 'x509-certificate:hashes.', ObservableValue, ''),
x509Issuer = iff(ObservableKey has 'x509-certificate:issuer', ObservableValue, ''),
x509CertificateNumber = iff(ObservableKey == 'x509-certificate:serial_number', ObservableValue, ''),
Description = tostring(Data.description),
CreatedByRef = Data.created_by_ref,
Extensions = Data.extensions,
ExternalReferences = Data.references,
GranularMarkings = Data.granular_markings,
ExternalIndicatorId = tostring(Data.id),
IndicatorId = Id,
ThreatType = tostring(Data.indicator_types[0]),
Severity = tostring(parse_json(tostring(parse_json(tostring(Data.extensions)).["sentinel-ext"])).severity),
KillChainPhases = Data.kill_chain_phases,
Labels = Data.labels,
Lang = Data.lang,
Name = Data.name,
ObjectMarkingRefs = Data.object_marking_refs,
PatternType = Data.pattern_type,
PatternVersion = Data.pattern_version,
Revoked = Data.revoked,
SpecVersion = Data.spec_version
| project-reorder TimeGenerated, WorkspaceId, AzureTenantId, ThreatType, ObservableKey, ObservableValue, Confidence, Name, Description, LastUpdateMethod, SourceSystem, Severity, Created, Modified, ValidFrom, ValidUntil, IsDeleted, Tags, AdditionalFields, CreatedByRef, Extensions, ExternalReferences, GranularMarkings, ExternalIndicatorId, IndicatorId, KillChainPhases, Labels, Lang, ObjectMarkingRefs, Pattern, PatternType, PatternVersion, Revoked, SpecVersion, NetworkIP, NetworkDestinationIP, NetworkSourceIP, DomainName, EmailAddress, FileHashType, FileHashValue, Url, x509Certificate, x509Issuer, x509CertificateNumber, Data